package com.xujiang.common.uiutil;

import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.widget.Button;

import com.xujiang.common.R;

/**
 * 主要是倒计时类
 *
 * @author xujiang
 * @version 2017-05-05 15:48
 */
public class ButtonCountdown {

    private static MCountDownTimer mc;   //一个倒计时工具类

    public static long clockTime = 0;  //倒计时开始时间戳
    public static Integer clockTimes = 0;  //点击次数 每3次清空
    public static Integer timelong;  //记时时长  30s  60s 7200s

    /**
     * 根据点击的累计次数显示倒计时时间
     * 在oncreat中调用此函数
     */
    public static void setButtonClockandEnable(Context mComtetx, Button btSendemail) {
        if (clockTimes != 0) {
            long passedTime = System.currentTimeMillis() - ButtonCountdown.clockTime;  //当前时间减去存储的时间
            if (passedTime > ButtonCountdown.timelong * 1000) {
                //设置按钮可点击
                btSendemail.setEnabled(true);
                btSendemail.setBackgroundResource(R.drawable.button_style);  //可点击的样式变化
            } else {
                long sencond = (ButtonCountdown.timelong * 1000 - passedTime);  //设置显示的秒数
                mc = new MCountDownTimer(sencond, 1000, btSendemail);  //第一个为倒计时时间  第二个为每一秒刷新时间
                mc.start();    //开始计时
                btSendemail.setBackgroundColor(ContextCompat.getColor(mComtetx, R.color.noclick));  //设置成灰色 表示不可点击
                btSendemail.setEnabled(false);
            }
        }

    }

    /**
     * 对不同次数时间的选择 30s  60s  7200s
     * 在点击事件中调用次函数
     *
     * @param btSendemail button 按钮
     * @param mComtetx 上下文需要
     */
    public static void limitClock(Button btSendemail, Context mComtetx) {
        if (ButtonCountdown.clockTimes == 0) {
            buttonClock(1, 30, btSendemail, mComtetx);
        } else if (ButtonCountdown.clockTimes == 1) {
            buttonClock(2, 60, btSendemail, mComtetx);
        } else if (ButtonCountdown.clockTimes == 2) {
            buttonClock(3, 7200, btSendemail, mComtetx);
        } else if (ButtonCountdown.clockTimes == 3) {
            buttonClock(1, 30, btSendemail, mComtetx);
        }
    }

    /**
     * 对点击按钮发送邮件后的设置
     *
     * @param times 点击获取邮件的次数  三次一归0
     * @param seconds 本次需要倒计时的时间
     * @param btSendemail button按钮对象
     * @param mComtetx mComtetx
     */
    private static void buttonClock(int times, int seconds, Button btSendemail, Context mComtetx) {
        mc = new MCountDownTimer(seconds * 1000, 1000, btSendemail);
        mc.start();
        btSendemail.setBackgroundColor(ContextCompat.getColor(mComtetx, R.color.noclick));  //设置成灰色 表示不可点击
        btSendemail.setEnabled(false);
        ButtonCountdown.clockTimes = times;
        ButtonCountdown.clockTime = System.currentTimeMillis();
        ButtonCountdown.timelong = seconds;
    }

}
